/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Almacenamiento.Catalogos;


import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Rosa y Kelly
 */
public class Catalogo {
    private String archivoCatalogo;
    private java.util.Map<String, EntradaCatalogo> entradas;
    private int numeroDeTablas;
    
    public Catalogo(String archivoCatalogo) {
        this.archivoCatalogo = archivoCatalogo;
        entradas = new java.util.Hashtable<String, EntradaCatalogo>();
    }
    
    public void crearNuevaEntrada (EntradaCatalogo entrada)
            throws IllegalArgumentException
    {
           if(!existeTabla(entrada.getNombreTabla()))
           {
               entradas.put(entrada.getNombreTabla(), entrada);
               numeroDeTablas++;
           }
           else
           {
               throw new IllegalArgumentException("Tabla: "+entrada.getNombreTabla()+"ya existe. ");
           }             
        
    }
    
    protected boolean existeTabla(String nombreTabla)
    {
        return (entradas.get(nombreTabla)!=null);
    }

    @Override
    public String toString() {
        return "Catalogo " + numeroDeTablas + "Tablas. Entradas : \n"+ "\t"+entradas.toString();
    } 
    
    public static void main(String[] args) {
        
        Tabla tabla1 = new Tabla("cliente");
        Tabla tabla2 = new Tabla("proveedor");
        
        // implementar un programa para almacenar un catalogo en disco y poder actualizar 
        //sus entradas (agregar, actualizar y eliminar entradas del catalogo)
        //tambien se debe poder recuperar el catalogo del disco.
        
        //Catalogo cat= new Catalogo("D:/prueba/catalogo.txt");
        
        
        
              
    }    
}